kuadm搭建kubernetes 1.5

  1. 环境:
    a. 192.168.254.160 k8s01.160
    b. 192.168.254.161 k8s02.161
    c. 192.168.254.162 k8s03.162
    d. 配置好hosts和hostname
    e. 保证时间一致
  2. 以下在所有机器上安装
    a. 配置阿里k8s源
    cat < /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    EOF
    b. setenforce 0 //为了让docker可以访问文件系统
    c. sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/‘ /etc/selinux/config
    d. systemctl stop firewalld && systemctl disable firewalld
    e. yum install -y docker kubelet kubeadm kubectl kubernetes-cni
    f. systemctl enable docker && systemctl start docker
    g. 提前将google相关的一些image下载到本地会加快构建集群的速度,,这里用自己提前自动构建的镜像
    images=(kube-proxy-amd64:v1.5.2 \
    kube-discovery-amd64:1.0 \
    kubedns-amd64:1.9 \
    kube-scheduler-amd64:v1.5.2 \
    kube-controller-manager-amd64:v1.5.2 \
    kube-apiserver-amd64:v1.5.2 \
    etcd-amd64:3.0.14-kubeadm \
    kube-dnsmasq-amd64:1.4 \
    exechealthz-amd64:v1.2.0 \
    pause-amd64:3.0 \
    kubernetes-dashboard-amd64:v1.5.1)
    for imageName in ${images[@]} ; do
    docker pull fearchan/$imageName
    docker tag fearchan/$imageName gcr.io/google_containers/$imageName
    docker rmi fearchan/$imageName
    done
  3. 初始化Maseter节点
    a. systemctl enable kubelet && systemctl start kubelet
    b. kubeadm init

    c. 初始化成功,记住生成的token值以便后续加节点

    i. 记住:kubeadm join --token=50d2be.a776c64bb95af773 192.168.254.160
    
  4. 添加node
    a. systemctl enable kubelet && systemctl start kubelet
    b. kubeadm join –token=50d2be.a776c64bb95af773 192.168.254.160

    c. 添加成功

  5. 在Master测试
    a. kubectl get nodes

  6. 部署 weave 网络,不部署weave,dns无法启动
    a. 浏览器打开https://git.io/weave-kube,下载好weave-daemonset.yaml文件传到服务器上
    b. kubectl create -f weave-daemonset.yaml

  7. 部署 dashboard
    a. 下载https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml文件,并做修改,是为了使用本地dashboard镜像
    b. 编辑 yaml 改一下 imagePullPolicy,把 Always 改成 IfNotPresent(本地没有再去拉取) 或者 Never(从不去拉取) 即可
    c. 保证本地有gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1
    d. 执行:

    i. kubectl create -f kubernetes-dashboard.yaml
    

    e. 等待创建完成:

    i. kubectl get pod --all-namespaces | grep dashboard
    

    f. 查看暴露出来的端口即可访问

    i. kubectl describe svc kubernetes-dashboard --namespace=kube-system
    

    g. 访问地址:

    i. http://192.168.254.160:31618/